package algorytmy.numeryczne;
/**W tej klasie zostały zgromadzone metody
 * wykorzystujące w swoim działaniu proste
 * algorytmy numeryczne
 * @author Piotrek
 *
 */
public class Algorytmy {
	public static void main(String[] args){
		System.out.println(miejsceZeroweN(new FunkcjaZp("-1-0.6*x+0.25*x^2","0.5*x-0.6"),6.0,0.001));
		System.out.println(miejsceZeroweN(new FunkcjaZp("2*x^2-x-1","4*x-1"),0.5,0.1));
	}
	/**
	 * Oblicza przypliżone miejsca zerowe funkcji
	 * @param f funkcja dla której maja byc znalezione miejsca zerowe
	 * @param w punkt zerowy w od ktorego algorytm rozpocznie poszukiwania
	 * @param eps dokladnosc z jaką zostaną odnalezione miejsca zerowe
	 * @return miejsce zerowe funkcji z przybliżeniem eps
	 */
	public static double miejsceZeroweN(FunkcjaZp f, double w, double eps){
		w=w-f.wartoscFunkcji(w)/f.wartoscPochodnej(w);
		if(f.wartoscFunkcji(w)>eps)
			w=miejsceZeroweN(f,w,eps);
		return w;
	}
}}